import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Boutique qui permet de vendre son escargot le plus gros.
 *
 */


public class BoutiqueVenteEscargot extends Boutique {
	
	private BoutiqueAchatEscargot boutiqueAchatEscargot;
	private Escargot escargot;
	private BarreDeJeu barreDeJeu ;
	private BoutiqueAchatEscargot boutiqueAcahtEscargot;
	
	private int prixVenteEscargot=0;
	private int emplacementEscargot=0;
	
	private JPanel confirmationVenteEscargot;
	private JLabel imageBoutiqueVenteEscargot = new JLabel(new ImageIcon("img/VendreEscargot.png"));

	/**
	 * Constructeur de la classe BoutiqueVenteEscargot
	 * 
	 * @param _barreDeJeu
	 * @param _tirelire
	 */
	public BoutiqueVenteEscargot(BarreDeJeu _barreDeJeu, Tirelire _tirelire) {
		super(_tirelire);
		this.barreDeJeu= _barreDeJeu;
	}

	/**
	 * choixEscargot permet de recuperer l'escargot le plus gros de l'environnemnent
	 * 
	 * @return emplacementEscargot :indice ou se trouve l'escargot le plus lourds
	 */
    public int choixEscargot() {	
    	int poidsMax=0;
     		for (int i = 0; i <= (barreDeJeu.getEnvironnement().getModele().getListeEscargot().size())-1; i++){	
     			if (poidsMax < barreDeJeu.getEnvironnement().getModele().getListeEscargot().elementAt(i).getPoids()){
     				poidsMax=barreDeJeu.getEnvironnement().getModele().getListeEscargot().elementAt(i).getPoids();
     				emplacementEscargot=i;}
     			}
     		return emplacementEscargot;
    }

    /**
     * Permet de vendre un escargot
     */
    public void vendreEscargot(){
    	if (barreDeJeu.getEnvironnement().getModele().getListeEscargot().size()>=1) {
    		int plusGrosEscargot=choixEscargot();//Recupere l'escargot le plus gros 
			int prixVenteEscargot=barreDeJeu.getEnvironnement().getModele().getListeEscargot().elementAt(plusGrosEscargot).
					prixAchatEscargot+ barreDeJeu.getEnvironnement().getModele().getListeEscargot().elementAt(plusGrosEscargot).
					getPoids()*100;//Calcule le prix de vente de l'escargot
			this.crediterTirelire(prixVenteEscargot);//Credite la somme dans la tirelire
			this.barreDeJeu.getEnvironnement().getModele().getListeEscargot().remove(barreDeJeu.getEnvironnement().getModele().
					getListeEscargot().elementAt(plusGrosEscargot));
			this.barreDeJeu.getBoutiqueAchatEscargot().setNombreEscargot(barreDeJeu.getBoutiqueAchatEscargot().getNombreEscargot()-1);
    	}
    }
    
    /**
     * Credite la somme a la tirelire 
     * 
     * @param sommeCrediter
     * 						sommeCrediter est de type integer
     * 						
     */
    public void crediterTirelire(int sommeCrediter) {
    	this.barreDeJeu.getTirelire().setEtatTirelire(barreDeJeu.getTirelire().getEtatTirelire()+sommeCrediter);	    	
    }
    
    /**
     * Initialise la fentre qui permet de confirmer la vente d'un escargot
     */
    public void confirmerActionVenteEscargot(){
    	//Configuration de la fenetre
    	this.setUndecorated(true);
    	this.setSize(150,50);
    	this.setLocation(700,300);
    	this.setTitle("Confirmer l'action ?");
    	this.toFront();
    	
    	//Creation des boutons Oui et Non
    	boutonNon = new JButton(new ImageIcon("img/BoutonNon.png")); //changer image
  	    boutonOui = new JButton(new ImageIcon("img/BoutonOUI.png"));
    	
  	    //Ajout de la possibilitee d'interagir avec les boutons
		boutonOui.addActionListener(this);
		boutonNon.addActionListener(this);
		boutonOui.setToolTipText("Oui");
		boutonNon.setToolTipText("Non");
		
		//Placement des boutons et de l'image dans la fenetre
		boutonOui.setBounds(0,0,50,50);
		boutonNon.setBounds(100,0,50,50);
		imageBoutiqueVenteEscargot.setBounds(50,0,50,50);
		
		//Configuration des boutons
		boutonOui.setBorderPainted(false);
		boutonOui.setOpaque(false);
		boutonOui.setContentAreaFilled(false);
		boutonNon.setBorderPainted(false);
		boutonNon.setOpaque(false);
		boutonNon.setContentAreaFilled(false);
		
		//Creation de la fentre et ajout des boutons et image
		confirmationVenteEscargot = new JPanel(new BorderLayout(0,0));
		confirmationVenteEscargot.add(boutonOui);
		confirmationVenteEscargot.add(boutonNon);
		confirmationVenteEscargot.add(imageBoutiqueVenteEscargot);
		
		add(confirmationVenteEscargot);
		
    }
   
    /**
     * Affiche la fentre pour confirmer la vente d'un escargot
     */
    public void afficherConfirmerActionVenteEscargot(){
    	this.setVisible(true);

    }
    
    /**
     * Fonction qui permet d'interagir avec les boutons
     */
    public void actionPerformed(ActionEvent arg) {
        if (arg.getSource()==boutonOui){
        	//si l'action est confirmee, on vend l'escargot et on rend insible la fenetre 
        	vendreEscargot();
            this.setVisible(false);
      	}
    	if (arg.getSource()==boutonNon){
    		//si l'action n'est pas confirmee, on ne vend pas l'escargot et on rend insible la fentre 
    		this.setVisible(false);
      	}
    }
    
    //GET&SET
    
	public int getPrixVenteEscargot() {
		return prixVenteEscargot;
	}

	public void setPrixVenteEscargot(int prixVenteEscargot) {
		this.prixVenteEscargot = prixVenteEscargot;
	}

	}
